DESIGN DEL FORMATO FILES DI WILD. Intanto: WILD carica delle Scenes, con dentro tutto l'occorrente. Poi: il primo formato che uso (forse anche l'unico) sarà un tipo simile all'IFF. Ci dovrà essere un chunk che definisce la struttura della scene, e poi tutti chunks descriveranno il resto. Dovrà essere splittabile in più files. Mi serve un concetto di chunks figli. esempio: ROOT SCENE ARENA ALIEN SECTOR NEBULA WIRE SHELL SECTOR NEBULA WIRE SHELL ALIEN SECTOR ... ARENA ... EOF Struttura Chunk: KEY.l SIZE.l (including childs, so ROOT will have size=FILESIZE-chunkheader) DATA.l (size of data in the chunky before the first child chunk) CHILDS.l (number of childs of this chunk) Chunks: (indicated by keys) WILD The header chunk, also file identifier LINK Special chunk !!! In the data you will have a relative filename. It will be inserted here like if it was a single file. Nuovi concetti, 28/4/1999, un sacco di tempo dopo... Serve un formato molto più veloce del wabl (in loading soprattutto) e binario. Control header: - dc.w command Commands: NEW_BROTHEROBJECT NEW_CHILDOBJECT Object header: - dc.l ObjectType - dc.l ObjectID (objectType = 0 is EOF) Then, must be the attributes (NOT friends, just attributes, simple & complex). - dc.l AttributeID - dc.l AttributePTR (offset into the DATA bank) - dc.l AttributeLEN (len into the DATA bank) (attributeID = 0 is end of attributes) The ending attribute is only a 0, not (0,0,0) ! Then, must be the friends. - dc.l FriendID - dc.l FriendPTR (offset from there (the longword next to this) to object referred) code to extract a friend: *a0=friend move.l (a0)+,d0 ; d0=FriendID movea.l (a0)+,a1 adda.l a0,a1 ; a1=FriendPTR Dovrebbe anche supportare XPK. Il loader si può scrivere in asm, ma in saver in c...